home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / utilprtr.arc / GDUMP.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1982-12-30  |  3.1 KB  |  87 lines

  1. 0  REM prog = GDUMP
  2. 1  VERSION$= "V1.2"  'COMPILE open-print time delay bug sidestepped.
  3. 2  REM Author:  Herb Shear, 1590 Vineyard Dr. Los Altos, Ca 94022
  4. 3  'PUBLIC DOMAIN SOFTWARE
  5. 4  REM Medium Resolution Graphic Screen dump to C.ITOH 8510 or NEC 8023
  6. 5  REM  --If you want to dump a graphics screen to disk all that takes is:
  7. 6  '
  8. 7  '     DEF SEG=&HB800: BSAVE "filname.ext",0,&H4000
  9. 8  '         (BASIC immediate mode instruction).
  10. 9  '
  11. 10  '      This PEEK version has some advantages over a similiar
  12. 11  'POINT version. It's a little faster, it doesn't care whether you
  13. 12  'are running mono or color, text or graphics modes.  If you have the
  14. 13  'graphics on disk but don't have a color card change the DEF SEG to
  15. 14  'any hunk of memory laying around doing nothing useful.
  16. 15  'Compiled this thing runs in under 30 secs vs interpreter's 5+ minutes.
  17. 100  KEY OFF:CLS:DEFINT A-Z: DEF SEG = &HB800
  18. 110  OPEN "LPT1:" AS #1:WIDTH #1,255
  19. 120  PRINT "GDUMP  ";VERSION$
  20. 130  PRINT:PRINT "Enter FILENAME.EXT of graphics binary file. NO QUOTES!"
  21. 140  PRINT
  22. 150  PRINT "Pressing Enter defaults to current graphics screen display"
  23. 160  PRINT
  24. 170  GOSUB 790
  25. 180  LINE INPUT "?"; N$
  26. 190  IF LEN(N$)=0 THEN 240
  27. 200  PRINT "If Color Graphics board is in text mode -"
  28. 210  PRINT "  BE YEA OF GOOD FAITH"
  29. 220  BLOAD N$,0
  30. 230  REM       16/144 feed    unidir      elongated compressed pitch
  31. 240  PRINT #1,CHR$(27)+"T16"+CHR$(27)+">"+CHR$(14)+CHR$(27)+"Q";
  32. 250  P1$=CHR$(27)+"S0320" '320 bytes of graphics mode
  33. 260  FOR J=0 TO 7680 STEP 320
  34. 270  P$=P1$                  :PP$=""
  35. 280  FOR X = 0 TO 79         :Z=J+X
  36. 290  P=0
  37. 300  IF PEEK(Z   ) AND &HC0 THEN P=P OR &H1
  38. 310  IF PEEK(Z+&H2000) AND &HC0 THEN P=P OR &H2
  39. 320  IF PEEK(Z+&H50) AND &HC0 THEN P=P OR &H4
  40. 330  IF PEEK(Z+&H2050) AND &HC0 THEN P=P OR &H8
  41. 340  IF PEEK(Z+&HA0) AND &HC0 THEN P=P OR &H10
  42. 350  IF PEEK(Z+&H20A0) AND &HC0 THEN P=P OR &H20
  43. 360  IF PEEK(Z+&HF0) AND &HC0 THEN P=P OR &H40
  44. 370  IF PEEK(Z+&H20F0) AND &HC0 THEN P=P OR &H80
  45. 380  PP$=PP$+CHR$(P) : P=0
  46. 390  IF PEEK(Z   ) AND &H30 THEN P=P OR &H1
  47. 400  IF PEEK(Z+&H2000) AND &H30 THEN P=P OR &H2
  48. 410  IF PEEK(Z+&H50) AND &H30 THEN P=P OR &H4
  49. 420  IF PEEK(Z+&H2050) AND &H30 THEN P=P OR &H8
  50. 430  IF PEEK(Z+&HA0) AND &H30 THEN P=P OR &H10
  51. 440  IF PEEK(Z+&H20A0) AND &H30 THEN P=P OR &H20
  52. 450  IF PEEK(Z+&HF0) AND &H30 THEN P=P OR &H40
  53. 460  IF PEEK(Z+&H20F0) AND &H30 THEN P=P OR &H80
  54. 470  PP$=PP$+CHR$(P) : P=0
  55. 480  IF PEEK(Z   ) AND &HC THEN P=P OR &H1
  56. 490  IF PEEK(Z+&H2000) AND &HC THEN P=P OR &H2
  57. 500  IF PEEK(Z+&H50) AND &HC THEN P=P OR &H4
  58. 510  IF PEEK(Z+&H2050) AND &HC THEN P=P OR &H8
  59. 520  IF PEEK(Z+&HA0) AND &HC THEN P=P OR &H10
  60. 530  IF PEEK(Z+&H20A0) AND &HC THEN P=P OR &H20
  61. 540  IF PEEK(Z+&HF0) AND &HC THEN P=P OR &H40
  62. 550  IF PEEK(Z+&H20F0) AND &HC THEN P=P OR &H80
  63. 560  PP$=PP$+CHR$(P) : P=0
  64. 570  IF PEEK(Z   ) AND &H3 THEN P=P OR &H1
  65. 580  IF PEEK(Z+&H2000) AND &H3 THEN P=P OR &H2
  66. 590  IF PEEK(Z+&H50) AND &H3 THEN P=P OR &H4
  67. 600  IF PEEK(Z+&H2050) AND &H3 THEN P=P OR &H8
  68. 610  IF PEEK(Z+&HA0) AND &H3 THEN P=P OR &H10
  69. 620  IF PEEK(Z+&H20A0) AND &H3 THEN P=P OR &H20
  70. 630  IF PEEK(Z+&HF0) AND &H3 THEN P=P OR &H40
  71. 640  IF PEEK(Z+&H20F0) AND &H3 THEN P=P OR &H80
  72. 650  PP$=PP$+CHR$(P)
  73. 660  IF X=39 THEN P$=P$+PP$: PP$=""
  74. 670  NEXT  'x
  75. 680  PRINT #1,P$;    :PRINT #1,PP$+CHR$(10)  :    NEXT 'j
  76. 690  PRINT TAB(20);"M)  More of the same."
  77. 700  PRINT TAB(20);"N)  New file."
  78. 710  PRINT TAB(20);"X)  Exit (Wait for printer to finish).":PRINT :PRINT
  79. 720  PRINT:PRINT:PRINT TAB(20);"?  "+CHR$(29);
  80. 730  WHILE INKEY$<>"":WEND
  81. 740  IN$=INKEY$: IF IN$="" THEN 740
  82. 750  ON INSTR(" MmNnXx",IN$)\2 + 1 GOTO 720,260,130
  83. 760  GOSUB 790
  84. 770  CLOSE
  85. 780  END
  86. 790  PRINT #1,CHR$(27)+"\"+CHR$(0)+CHR$(0);:RETURN
  87.